Game machine software and communications for community bonus round gaming

ABSTRACT

A software product for operating a game with a community bonus round includes software and a storage medium. The software is operational when executed by a processor to direct the processor to receive a game play event from an interface of a game machine and transmit the game play event to a game system. The software is also operational when executed by the processor to direct the processor to process the game play event to determine a state of the game with the community bonus round and transmit the state to the game system for synchronization. The storage medium stores the software.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of U.S. application Ser. No.11/202,483 titled “Community Bonus Round Gaming” filed Aug. 11, 2005,and claims the priority of U.S. Provisional Application Ser. No.60/707,048 titled “Community Bonus Round Gaming,” filed Aug. 9, 2005,which are both hereby incorporated by reference.

BACKGROUND

1. Field of the Invention

The present invention relates generally to gaming, and moreparticularly, to game machine software and communications for communitybonus round gaming.

2. Description of the Prior Art

With the continued expansion of casino gambling, casino companies mustcompete more than ever for gambling dollars. To attract customers,casino companies are avoiding the traditional short-term, stop-gapsolutions (e.g. increasing the buffet offering, giving rooms away,advertising double and triple points) and focusing on improving theguest's overall casino experience.

One technique to improve the guest's casino experience is to implement abonus game in slot machines. A bonus game may be triggered during normalgame play on a slot machine and offers players a new game. For example,a video poker slot machine offered International Game Technology (IGT)triggers a bonus game when certain conditions are met. Once bonus gameplay is complete, the IGT video poker slot machine resumes normal gameplay.

Another example of improving the casino experience is a slot machinewith progressive payouts. As each individual slot machine plays a game,the progressive payout increases. The slot machine displays theprogressive payout on a large screen to encourage other players toparticipate. The server collects information regarding the incomereceived from the different slot machines and creates a jackpot. Whenthe specific slot machine “hits the jackpot” such as triples sevens, thespecific slot machine wins the progressive payout. An example of theslot machine with progressive payouts is the “Wheel of Fortune” slotmachine.

There are approximately 754,000 slot machines currently installed inNorth America. This represents a 400% increase from the number ofmachines installed in 1991. Although many of these slot machines appearto have different games, operate as slot machines with progressivepayouts, or offer a bonus game, the vast majority of slot machinesoperate extremely similarly. For example, the “Terminator” slot machineplays the same game as the “I Love Lucy” slot machine. Aside from slightdifferences in graphics and sound, game play has not significantlychanged.

SUMMARY OF THE INVENTION

A software product for operating a game with a community bonus roundincludes software and a storage medium. The software is operational whenexecuted by a processor to direct the processor to receive a game playevent from an interface of a game machine and transmit the game playevent to a game system. The software is also operational when executedby the processor to direct the processor to process the game play eventto determine a state of the game with the community bonus round andtransmit the state to the game system for synchronization. The storagemedium stores the software.

The game play event may indicate a user interaction with the gamemachine. The game machine may include another game machine or a server.The state may indicate a condition of hardware in the game machine or atransaction in the game. The software may comprise game client softwareand state manager software. The software may be operational whenexecuted by the processor to direct the processor to receive a messageindicating an offer to join the community bonus round.

A system for operating a game with a community bonus round includes auser interface and a processor. The user interface generates a game playevent based on user input. The processor receives the game play eventfrom the user interface and transmits the game play event to a gamesystem. The processor also processes the game play event to determine astate of the game with the community bonus round and transmits the stateto the game system for synchronization.

A method for operating a game with a community bonus round includes thesteps of in a user interface, generating a game play event based on userinput and receiving the game play event from the user interface. Themethod also includes the steps of transmitting the game play event to agame system, processing the game play event to determine a state of thegame with the community bonus round, and transmitting the state to thegame system for synchronization.

By allowing game machines to play bonus rounds within a community, newgames may be offered to players. The players within the community maydirectly compete with each other, work together, or experience new formsof entertainment that were previously unavailable. The casino mayutilize community bonus round gaming to encourage groups, friends,associations, and clubs to game together or create excitement in acasino to entice other people to participate in community bonus roundgaming. The software product advantageously provides game play events toanother game system such as a bonus server or another game machine toprovide communications in order to execute a community bonus round. Thecommunity bonus round requires communications between the game machineand another game system to generate the community excitement andinteraction to encourage greater player participation. The softwareproduct also provides synchronization between the game machine and gamesystem to ensure proper execution of the community bonus round.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of a system for gaming in one embodiment ofthe invention.

FIG. 2 is an illustration of a game machine in one embodiment of theinvention.

FIG. 3 is a flow chart depicting the initiation and play of a communitybonus round in one embodiment of the invention.

FIG. 4 is a flow chart depicting the initiation and play of a communitybonus round in another embodiment of the invention.

FIG. 5 is a block diagram of the game machine in one embodiment of theinvention.

FIG. 6 is a block diagram of a game machine module in one embodiment ofthe invention.

FIG. 7 is a block diagram of a bonus server module in one embodiment ofthe invention.

FIG. 8 is a block diagram of a system for community bonus round gamingin one embodiment of the invention.

FIG. 9 is a flow chart for a game client in one embodiment of theinvention.

FIG. 10 is a block diagram of a system for community bonus round gamingin one embodiment of the invention.

FIG. 11 is a flow chart for state managers in one embodiment of theinvention.

FIG. 12 is an illustration of communications layers and a communicationsprotocol in an embodiment of the invention.

FIG. 13 is an illustration of a communication protocol header in oneembodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

The embodiments discussed herein are illustrative of one example of thepresent invention. As these embodiments of the present invention aredescribed with reference to illustrations, various modifications oradaptations of the methods and/or specific structures described maybecome apparent to those skilled in the art. All such modifications,adaptations, or variations that rely upon the teachings of the presentinvention, and through which these teachings have advanced the art, areconsidered to be within the scope of the present invention. Hence, thesedescriptions and drawings should not be considered in a limiting sense,as it is understood that the present invention is in no way limited toonly the embodiments illustrated.

Community bonus round game play across multiple game machines allowsmultiple players to participate in the same game. A game machine is amachine that allows a player to input data and/or money into the gamemachine to play a game for the opportunity to win points, currency,awards, or prizes. One example of the game machine is a slot machine.

In one embodiment, the game machine allows the player to play games muchlike a traditional slot machine. However, a community bonus round may betriggered to engage the game machine in a community bonus round.Simultaneously, or soon thereafter, one or more other game machines maybe invited to join the community bonus round thereby allowing otherplayers to participate within the same community bonus round. In oneexample, players cooperate within the community bonus round to maximizescores for all participants. Alternatively, the community bonus roundmay allow multiple players to compete with each other for points,currency, awards, or prizes. In another example, players may receive abonus by merely playing within the community bonus round.

FIG. 1 is an illustration of a system for gaming 100 in one embodimentof the invention. The system for gaming 100 comprises the bonus server110, the game machines 120, 130, and 140, and the communications network150. The communications network 150 is coupled to the bonus server 110and the game machines 120, 130, and 140.

The communications network 150 may comprise a single device or multipledevices. In one embodiment, the communications network 150 is a routerthat routes data to a limited number of devices. In another embodiment,the communications network 150 comprises multiple routers, bridges, andhubs that couple a larger number of devices. A communications network150 may be a local area network (LAN), a wide area network (WAN), aglobally accessible network, such as the Internet, or any other networkthat allows devices to communicate and transmit data to each other.

Although the communications network 150 illustrated within FIG. 1appears to be a “star” topology (i.e. each device communicates to acentral hub), the communications network 150 may be any topology. In oneexample, the communications network 150 comprises a peer-to-peer networkwherein the devices connect directly to each other in a “ring” topology.

The bonus server 110 is any device or system configured to generate andtransmit an initiation message to the game machines 120, 130, and 140,to initiate the community bonus round, receive game information from thegame machines 120, 130, and 140, and determine a result for thecommunity bonus round.

The initiation message is any signal, message, or instruction thatdirects the game machines 120, 130, or 140 to activate the communitybonus round. The initiation message may further comprise a message tothe players of the game machines 120, 130, and 140, notifying theplayers of the impending community bonus round and requesting furtherinput.

The community bonus round is any extra, special, premium, or bonus modethat follows a normal gaming mode and may be played by two or more gamemachines 120, 130, and/or 140. In one embodiment, the community bonusround is triggered upon the occurrence of some preset condition on oneof the game machines 120, 130, or 140.

In some embodiments, the community bonus round is collaborative,competitive, or associative. In one example, when the community bonusround is collaborative, the players of the first game machine 120 andthe other participating game machines 130 and 140 will play together toachieve a bonus goal during the round. For example, the goal of thecommunity bonus round is to score more points than some preset limit.If, at the end of the community bonus round play, the sum of all of theplayers' points total more than the preset limit, the bonus server 110awards points, currency, awards, or prizes to the players of theparticipating game machines 120, 130, and 140. The end of the communitybonus round may be triggered by time expiring, a maximum number of spinsengaged, the sum of the players' scores reaching a preset limit, or thesuccess of achieving the goal.

In another example, the community bonus round is competitive; In thisexample, the players of the first game machine 120 and the otherparticipating game machines 130 and 140 play against each other forpoints, currency, awards, or prizes. The bonus server 110 may monitorand calculate the individual scores for the different participating gamemachines 120, 130, and 140. When the community bonus round ends, thebonus server 110 determines the winner of the community bonus round. Inone example, the winner of the community bonus round is the first playerto achieve some preset goal. In another example, the winner is theplayer who scored the most points within a given time. The communitybonus round may end when time expires, a maximum number of spins areengaged, or the preset goal is achieved.

In another example, the community bonus round is associative. In thisexample, the players of the first game machine 120 and the otherparticipating game machines 130 and 140 join the community bonus roundand are awarded points, currency, awards, or prizes for merelyparticipating. For example, the community bonus round may comprise thefirst game machine 120 displaying a golfer hitting a golf ball.Subsequently, the golf ball may be depicted as bouncing by theparticipating game machines 130. The golf ball may also be depictedlanding close or into a hole on another participating game machine 140.The bonus server 110 may then calculate the scores and results of thecommunity bonus round. For example, the bonus server 110 may award ahigher number of points to the game machines 120 and 140 that depict thegolfer's swing or the golf hole. The bonus server 110 may award adifferent number of points to every participating game machine 130 thatdepicted the golf ball bouncing or rolling. The community bonus roundends when some condition is met. In this example, the community bonusround ends when the golf ball is depicted as coming to a halt.

The game information is any information or data that indicates metricsor results from a game. Some examples of game information are a state ofplay of the game machine 120, 130, and/or 140, player information,status of the community bonus round, game machine data, a request tojoin the community bonus round, a refusal to join the community bonusround, and/or an acceptance to join the community bonus round.

The state of play of the game machine 120, 130, and/or 140 comprises thecurrent activity of the game machine 120, 130, and/or 140. States ofplay may include, but are not limited to, waiting for a player toinitiate game play, normal game play, activating the community bonusround, playing the community bonus round, or transitioning from normalgame play to the community bonus round.

The game information may also comprise the request to join the communitybonus round, the refusal to join the community bonus round, and/or theacceptance to join the community bonus round. In one example, the playerreceives a request to join the community bonus round on the game machine120. The player subsequently inputs the acceptance or refusal to jointhe community bonus round. The game machine 120 transmits the acceptanceor refusal to the bonus server 110. In one example, the bonus server 110or other game machines 130 or 140 receive the acceptance and then addsthe game machine 120 to an existing community bonus round. In anotherexample, the game machine 120 performs at least some of the logic toactivate the community bonus round. In this example, the game machine120 initiates the community bonus round. The game machine 120 thentransmits the request to join the community bonus round to the bonusserver 110, which, in turn, transmits the request to the other gamemachine 130 or 140 to join the community bonus round.

In one embodiment, the bonus server 110 controls at least some of thegame play on the game machines 120, 130, and/or 140. For example, theplayer engages the game machine 120 to play a game, while the bonusserver 110 performs the game logic that controls the parameters and gameexecution.

The game machines 120, 130, and 140 are devices or systems that areconfigured to activate the community bonus round and transmit gameinformation in the community bonus round.

Although the bonus server 110 is illustrated in FIG. 1 as a separatedevice from the game machines 120, 130, or 140, some or all of thefunctions of the bonus server 110 may be contained within a softwaremodule of one of the game machines 120, 130, or 140.

Optionally, an administrative server and a marketing server (not shownin FIG. 1) may be devices or systems on the communications network 150.An administrative server maintains information relating to game play andcommunity bonus round play as well as metrics from the bonus server 110and the game machines 120, 130, and 140. In one example, theadministrative server receives and stores scores, player information,wins, losses, currency received, and the currency paid out by each gamemachine 120, 130, and 140. The administrative server may performcalculations to determine the relative success of each game machine 120,130, and 140. The administrative server may also perform calculations todetermine the relative success of individual games on the game machines120, 130, and 140, as well as the outcome of community bonus rounds.These functions may also be performed by the bonus server 110. Amarketing server may store advertisements or marketing information. Inone example, the marketing server sends advertisements and/or marketinginformation to the game machine 120, 130, and 140 to be displayed.

FIG. 2 is an illustration of a game machine 200 in one embodiment of theinvention. The game machine 200 comprises a bonus display 210, a primarydisplay 220, a programmable button panel 230, a ticket printer 240, abill/ticket acceptor 250, a player loyalty system 260, a coin tray 270,and a candle 280.

The bonus display 210 and the primary display 220 are any devicesconfigured to visually interact with the player of the game machine 200.For example, the bonus display 210 and/or the primary display may be atelevision screen, a monitor, a touch-screen, a tablet display, a liquidcrystal display (LCD), a plasma device, a cathode-ray tube (CRT) screen,a flat panel device, a terminal display, or a rear projection device. Inother embodiments, the bonus display 210 and the primary display 220 arethe same display. The bonus display 210 may be configured to show thegame play of the game machine 200. In one example, the bonus display 210displays the same game play as the primary display 220 thereby allowingspectators to view the game play.

The bonus display 210 may be configured to display informationassociated with a community bonus round, advertisements, games, orplayer information. In one example, the bonus display 210 displaysinformation associated with the community bonus round such as how toplay the community bonus round, when the community bonus round willbegin, an offer to join the community bonus round, community bonus roundplay or scores. The primary display 220 may also be configured todisplay information associated with the community bonus round.

In another example, the bonus display 210 is configured to displayadvertisements. Advertisements may contain information selling thefunctions of the game machine 200, games offered by the game machine200, services offered by the owner or leaser of the game machine, or anyother advertisements. The bonus display 210 may also be configured todisplay available games. In another embodiment, the bonus display 210displays scores or gaming results of the player of the game machine 200.The primary display 220 may also be configured to displayadvertisements, available games, scores, and/or gaming results.

The programmable button panel 230 is configured to accept input from theplayer of the game machine 200. In one example, each individual buttonson the programmable button panel 230 may be programmed to performcertain functions. Although ten buttons are depicted, the programmablebutton panel 230 may comprise any number of buttons, joysticks, orswitches. The programmable button panel 230 may also comprise a touchscreen or other device capable of accepting player input.

The ticket printer 240 is any printer capable of printing receipts,tickets, or other documents for the player or game machine 200technician. In some embodiments, the ticket printer 240 may printadvertisements or coupons that are redeemable by the player.

The bill/ticket acceptor 250 is any device capable of receiving andreading currency, tokens, or tickets. The bill/ticket acceptor 250 maycomprise a card reader configured to receive and read credit cards,debit cards, or stored value cards.

The player loyalty system 260 is any device capable of receiving playerinformation from the player of the game machine 200. In one embodiment,the player loyalty system 260 comprises a card reader that may receiveand read player information from a player loyalty card. In someembodiments, the player loyalty system 260 comprises a keypad or touchscreen with which the player may enter a password, input playerinformation, and/or request services.

Player information may comprise player identification, game preferences,time spent playing each game, casino preference, drink preference,associated friends, family members, clubs, hobbies, money spent, andwinnings. The player information may be stored on a player loyalty card,bonus server 110 (FIG. 1), and/or game machine 200. The player loyaltycard is any card that may be carried by a player that contains at leastsome player information.

The status of the community bonus round may indicate the game machine200's activation of the community bonus round, the preparation to beginthe community bonus round, or the community bonus round game play. Gamemachine data comprises resident games, software versions, firmwareversions, audit history, diagnostic history, and the amount of currencyavailable in the game machine 200.

The coin tray 270 is a tray configured to hold coins or tokens that areissued from the game machine 200. The candle 280 is a reflector and/orlight. In some embodiments, the candle 280 indicates that the gamemachine 200 requires service or is in a tilt condition.

FIG. 3 is a flow chart depicting the initiation and play of a communitybonus round in one embodiment of the invention. FIG. 3 begins with step300. In step 310, the first game machine 120 (FIG. 1) transmits gameinformation to the bonus server 110. In one example, a player inputscurrency into the first game machine 120. The first game machine 120transmits a message to the bonus server 110 indicating that currency hasbeen received and game play has been initiated.

In step 320, the bonus server 110 determines a community bonus roundactivation on the first game machine 120. In some embodiments, the bonusserver 110 monitors the first game machine 120 or the game logic todetermine if the conditions are met. For example, the bonus server 110may determine which conditions are necessary to trigger the communitybonus round such as hitting a jackpot. Accordingly, if the game logicdetermines that this condition is to occur, then the bonus server 110triggers the community bonus round.

In step 330, the bonus server 110 generates an initiation message to thefirst game machine 120 and one or more other game machines 130 and/or140 to initiate the community bonus round. In some embodiments, thebonus server 110 generates messages to invite the players on the gamemachines 120, 130, and 140 to participate in the community bonus round.The bonus server 110 then generates a command to prepare the gamemachines 120, 130, and/or 140 that accepted joining the community bonusround. In one example, the bonus server 110 generates a command to thegame machines 120, 130 and/or 140 participating within the communitybonus round to display the name and location of each player. In anotherexample, the bonus server 110 generates a command to the participatinggame machines 120, 130 and/or 140 to display rules of the communitybonus round or a count-down of when the community bonus round is tobegin. In a further example, the bonus server 110 downloads software ordata to prepare the game machines 120, 130, and/or 140 to play thecommunity bonus round.

In step 340, the bonus server 110 activates the community bonus round onthe first game machine 120. In one example, the bonus server 110generates a command to activate the community bonus round to the firstgame machine 120. The first game machine 120 receives the command,generates the necessary graphics, and prepares to receive input from theplayer. In some embodiments, the bonus server 110 performs the necessarycommunity bonus round logic and processes player inputs received fromthe first game machine 120 and other game machines 130 and/or 140.

In step 350, the bonus server 110 determines results for the communitybonus round. In one example, the bonus server 110 collects scores fromthe first game machine 120 and the other participating game machines 130and/or 140. The final scores may be calculated by the bonus server 110as the community bonus round is played or the final scores may becalculated by the participating game machines 120, 130, and/or 140. Oncethe play of the community bonus round is completed, the bonus server 110proceeds to calculate final results depending on the rules of thecommunity bonus round. FIG. 3 ends in step 360.

FIG. 4 is a flow chart depicting the initiation and play of a communitybonus round in another embodiment of the invention. FIG. 4 begins instep 400. In step 405, the player initiates game play. In one example,the player inputs currency, tokens, or tickets into the bill/ticketacceptor 250 (FIG. 2) of the game machine 120 (FIG. 1).

In step 410, the game machine 120 sends a game play event to the bonusserver 110. In one example, the game machine 120 tracks the amount ofcurrency received and prepares to initiate a game. The game machine 120notifies the bonus server 110 that the player initiated game play. Insome embodiments, the bonus server 110 directs the game machine 120 todisplay a selection of games to the player and prepare to receive aplayer selection. The player may input the selection with theprogrammable button panel 230 or through the touch-screen primarydisplay 220. The game machine 120 directs the game selection to thebonus server 110 which then generates a control signal to the gamemachine 120 to display necessary graphics and program the appropriateinputs to play the selected game. The bonus server 110 also performs thegame logic necessary to play the game. While the game is played, thegame machine 120 transmits player inputs to the bonus server 110 whichgenerates appropriate commands depending on the game logic.

In step 415, the bonus server 110 determines if the community bonusround is triggered. The bonus server 110 monitors the game play and thestate of the game machine 120 to determine if those conditions are met.If the conditions are not met, FIG. 4 ends in step 450.

If the conditions are met, then FIG. 4 continues to step 420 where thebonus server 110 selects game machines 120, 130, and/or 140 anddetermines the bonus messages.

The bonus server 110 selects game machines 200 to join the communitybonus round. The bonus server 110 may determine if any conflicts or gameincompatibilities exist within each possible game machine 120, 130,and/or 140. In some embodiments, the bonus server 110 reviews playerinformation to determine if any players are associated with each other.If there are available players or club members associated with theplayer playing the game machine 120 that has begun the community bonusround, the bonus server 110 may determine bonus messages. In oneexample, the bonus server 110 generates a command to display aninvitation for the community bonus round to those players.

In one example, the bonus server 110 notifies the select game machines120, 130, and/or 140 that a community bonus round has been triggered.The bonus server 110 commands the select game machines 120, 130, and/or140 to display messages and graphics to the player on the game machines'primary display 220 or bonus display 210.

In other embodiments, the bonus server 110 contacts other bonus servers110 to coordinate community bonus round logic between a plurality ofgame machines 120, 130, and 140.

In step 425, the bonus server 110 sends a start community bonus roundsignal to the select game machines 120, 130, and/or 140 identified instep 420 and begins timing. In one example, bonus server 110 generatescommands to the select game machines 120, 130, and/or 140 to load a gameinterface, display necessary graphics, and program the respectiveprogrammable button panels 230 to play the community bonus round. Inanother example, the bonus server 110 generates a signal to the selectgame machines 120, 130, and/or 140 to display a countdown on therespective bonus displays 210 to herald the beginning of the communitybonus round.

In step 430, the select game machines 120, 130, and/or 140 begin thecommunity bonus round. Any graphics and community bonus round play maybe depicted on the select game machines' bonus display 210, the primarydisplay 220, or both.

In step 435, the select game machines 120, 130, and/or 140 send scoresto the bonus server 110. In some embodiments, the bonus server 110monitors the select game machines 120, 130, and/or 140 while directingcommunity bonus round logic. In one example, the bonus server 110tallies and calculates the scores of the select game machines 120, 130,and/or 140 during community bonus round play.

In step 440, the bonus server 110 calculates and transmits the communitybonus round results to the select game machines 120, 130, and/or 140. Instep 445, the bonus server 110 transmits messages to select gamemachines 120, 130, and/or 140. In some embodiments, the bonus server 110directs the'select game machines 120, 130, and/or 140 to display theresults of the community bonus round play, award points, currency,awards, or prizes, and print tickets or receipts. The bonus server 110then directs the select game machines 120, 130, and/or 140 to return tonormal game play. FIG. 4 ends in step 450.

FIG. 5 is a block diagram of the game machine 200 in one embodiment ofthe invention. The game machine 200 includes a system bus 580 coupled toa processor 510, memory system 520, storage system 530, input/output(I/O) interface 540, communications (com.) network interface 550,primary display 220, and the bonus display 210. The communicationsnetwork interface 550 is further coupled to an external communicationslink 590.

The processor 510 is configured to execute software or instructions. Thememory system 520 is any memory device configured to hold data, eitherpermanently or temporarily, to make the data available to any componentsconnected to the system bus 580. The memory system 520 may comprisebattery-backed random access memory or read-only memory (ROM).

The storage system 530 is any storage device or group of storage devicesconfigured to store data permanently or temporarily. In one embodiment,the storage system 530 implements a Read/Verify-after-Write (RVAW)policy where data is verified after being stored within the storagesystem 530. Further, the storage system 530 may comprise a storagedevice configured to receive and read external media.

The I/O interface 540 is any interface or device configured to provideinput or output to the player of the game machine 200. For example, theI/O interface 540 may comprise a video interface, audio interface, aremote control, a keypad, joystick, touch-screen, or buttons. In anotherembodiment, the I/O interface 540 is coupled to the programmable buttonpanel 230, the ticket printer 240, the bill/ticket acceptor 250, and theplayer loyalty system 260 which are each depicted in FIG. 2.

The communications network interface 550 is any communication interfaceconfigured to transfer data between any components connected to thesystem bus 580 and any network over the external communications link590. The external communications link 590 couples the game machine 200to any communications network.

FIG. 6 is a block diagram of the game machine module 600 in oneembodiment of the invention. The game machine module 600 is software orhardware that is resident on the game machine 200 (FIG. 2). The gamemachine module 600 comprises a game client 610, client manager 620,client tilt engine 630, client state manager 640, client diagnosticmodule 650, client communication manager 660, client administrativeconsole module 670, and game machine device drivers 680.

The game client 610 is an application configured to perform standardfunctions on the game machine 200. In some embodiments, the game client610 processes game machine 200 inputs (e.g. a button press),communicates game events to the bonus server 110 (FIG. 1), controlsoutput to the bonus display 210 (FIG. 2), controls output to the primarydisplay 220, and/or maintains the game machine 200 state. In someembodiments, the game client 610 relies on data libraries, such as tiltand bonus server libraries, to perform standard functions.

The client manager 620 may function as the software controller for thegame machine 200. The client manager 620 manages the game machine 200configuration, loads games, unloads games and manages the display ofmarketing events.

The client manager 620 may also control the display of advertisements.In some embodiments, the client manager 620 may receive advertisementsfrom a marketing server. When an advertisement is received by the clientmanager 620, the client manager 620 passes the advertisement to the gameclient 610 to be displayed.

The client tilt engine 630 generates tilts on error conditions in orderto prevent cheating and flag errors in game play. For example, theclient tile engine 630 triggers tilt conditions by errors associatedwith money, tampering with the game machine 200, alterations withsoftware and/or firmware, or the behavior of third party systems.

The client state manager 640 monitors the operation and state of thegame machine 200. The client state manager 640 is a repository of thecurrent and past data for the game machine 200 and may function tomaintain the data for the game machine's 200 hardware and softwarecomponents.

The client diagnostic module 650 provides hardware and softwarediagnostic tests. For example, the client diagnostic module 650 checksthe components of the game machine module 600 and the game machine 200.Regulatory requirements may require that gaming devices employmechanisms to verify that game components are authentic and have notbeen corrupted or tampered with. The client diagnostic module 650 mayperform a diagnostic test to verify and authenticate each component ofthe game machine module 600.

The client communication manager 660 controls the communication from thegame machine 200 to the communications network. In one embodiment, theclient communication manager 660 encrypts and decrypts communications toand from the communications network.

The client administrative console module 670 controls the function anddisplay of the administrative console to the player or technician of thegame machine 200. The administrative console is an interface configuredto receive input from the technician. The game client 610 may trigger anadministrative mode within the game machine 200 to display theadministrative console.

The administrative console comprises options for configuring the gamemachine 200 and/or the game machine module 600. Further, theadministrative console comprises options for diagnostic testing, viewinggame information, viewing game machine 200 information, or viewing gamemachine module 600 information.

The game machine device drivers 680 are used to control and configurethe components of the game machine 200. There may be a separate gamemachine device driver 480 for each component including the bonus display210, the primary display 220, the programmable button panel 230, theticket printer 240, the bill/ticket acceptor 250, the player loyaltysystem 260, the coin tray 270, and the candle 280 (FIG. 2). In oneembodiment, one or more of the game machine device drivers 680 may beconfigured to generate reports or events that are received by the gameclient 610 or the bonus server 110 (FIG. 1).

For example, the game machine device driver 680 for the programmablebutton panel 230 may control the button background color, button text,button text color, and button value. In another example, when a buttonon the programmable button panel 230 is depressed, the appropriate gamemachine device driver 680 generates an event which identifies the buttonpressed and the button value. The game machine device driver 680 for theprogrammable button panel 230 may reprogram the buttons and buttonvalues as a game is played or when a community bonus round is activated.

FIG. 7 is a block diagram of a bonus server module 700 in one embodimentof the invention. The bonus server module 700 is software that isresident on the bonus server 110 (FIG. 1) and controls the communitybonus round. The bonus server module 700 comprises a server module 705,a platform manager 710, a server tilt engine 715, a server state manager720, a server communication manager 725, a synchronization agent 730, agame matrix module 735, a rules engine 740, a server diagnostic module745, a server administration console module 750, and server devicedrivers 755.

The server module 705 interacts with the game client 610 (FIG. 6) withinthe game machine module 600 to control game play and the community bonusround. In some embodiments, the server module 705 controls all of thegame logic while the game client 610 controls and records player inputsand graphics on the game machine's primary display device 210 (FIG. 2).In one example, the server module 705 manages the game state (e.g.number of credits in the game machine 200), determines outcomes,controls overall game behavior, and controls the community bonus round.The game client 610 is responsible for processing the game machine 200input events (i.e. button press) and displays results (e.g. spinning andstopping wheels).

In other embodiments, the game logic is split between the server module705 and the game client 610. For example, the server module 705 maycontrol overall game behavior while the game client 610 determinesoutcomes. In further embodiments, the game client 610 performs all ofthe game logic and the server module 705 collects statistics andmonitors performance of the game machine 200.

The server module 705 may control the community bonus round and gamelevels. In one example, the server module 705 controls community bonusround gaming between two or more game machines 200. For example, theserver module 705 may set the condition necessary for the player of onegame machine 200 to trigger a community bonus round. When that conditionis met, the server module 705 determines which game machines 200 areactive on the network, which game titles are loaded on each active gamemachine, which of the loaded games are compatible with the communitybonus round, and if the games are in a state to participate in thecommunity bonus round. The server module 705 extends invitations to theplayers which satisfy all conditions to play within the community bonusround. The server module 705 initiates a community bonus round withthose which accept the invitation and then controls the community bonusround logic. It is appreciated that the server module 705 cansimultaneously control game logic of multiple game machines 200 andcommunity bonus round logic from multiple community bonus rounds.

During community bonus round play, the server module 705 returns playresults and community bonus round updates to the participating gamemachines 200. The outcome of the community bonus round is also sent tothe participating game machines 200. For example, each game machinereceives the player's score or credits won in the community bonus roundwhich may be displayed on the game machine's bonus display device 210(FIG. 2). The process of community bonus round play is further describedherein.

The server module 705 may also be configured to interact with otherbonus servers 110 or other server modules 705 when controlling thecommunity bonus round. For example, multiple server modules 705 maycoordinate a community bonus round between many game machines 200. Eachserver module 705 may handle a specific number of game machines 200thereby allowing the casino to provide for community bonus round gamingamong any number of game machines 200 in any location (e.g. betweendifferent floors of the casino or between different casinos.) It isappreciated that the server modules 705 allow for any amount of scalingto control and coordinate community bonus round game play.

In another embodiment, the server module 705 controls game levels. Gamelevels are similar to console video games where game play on the gamemachine 200 progresses from one level to the next. The determination ofthe triggering event that controls the transition from one level toanother may be determined by the game developer. The server module 705monitors the game machine 200 to determine if the triggering event ismet and then controls the game logic that instructs the game machine 200accordingly. It is appreciated that the server module 705 may controlboth community bonus rounds and game levels simultaneously.

In another example, the server module 705 may also store each player'stop score and highest level achieved. This information may be stored onthe game machine 200, the bonus server 110 (FIG. 1), and/or on theplayer loyalty card. As a result, the player may return, input theplayer loyalty card and resume playing at a different game machine 200at the last level attained.

In further embodiments, the server module 705 is configured to load andunload games from the game machines 200. For example, the server module705 may generate a command to remove or otherwise delete an existinggame from the game machine 200. The server module 705 then downloads andloads client software, graphics, video data and sound data to the samegame machine 200.

The platform manager 710, similar to the client manager 620 (FIG. 6) onthe game machine 200, controls the software of the bonus server 110(FIG. 1). In some embodiments, the platform manager 710 initiates theserver module 705, loads and unloads games, coordinates the transmissionof marketing events to the game machines 200, monitors maintenance,manages server configuration, controls the output of audit data, andprocesses events received from third-party systems.

The server tilt engine 715 monitors the operating state of the bonusserver 110 and generates tilts on error conditions in order to preventcheating.

The server state manager 720 monitors the operation of the bonus server110. The server state manager 720 is a repository of the current andpast data for data received from one or more of the game machines 200,the current and past data of the bonus server 110, and may function tomaintain the data for the bonus server's 110 hardware and softwarecomponents. The server state manager 720 also tracks the state of thebonus server 110 including, but not limited to, bonus server 110undergoing maintenance, controlling one community bonus round,controlling multiple community bonus rounds, or communicating with otherbonus servers 110.

The server communication manager 725 controls the communications fromthe bonus server 110 to and from the communications network. In oneembodiment, the server communication manager 725 controls systemauthentication, communication channel termination, and processesasynchronous requests from external systems for data (e.g. meters,tilts, marketing). The platform manager 710 may control the servercommunication manager 725.

The synchronization agent 730 determines that at least one bonus server110 is operating and processing game machine 200 requests. If a failureof the system should occur (e.g. there is no active bonus server 110 onthe network), the synchronization agent.730 transitions all devices onthe network to a failover state. For example, the synchronization agent730 may send a signal to the client manager 620 to initiate a shut downof the game machine 200.

The game matrix module 735 is a data structure that definesrelationships that are determined prior to activation of the gamingsystem. For example, the game matrix module 735 contains data thatdescribes compatibility between games, compatibility of games andcommunity bonus rounds, game functionality at different game machine 200states, game functionality at different regions, and game licensingrestrictions.

The rules engine 740 is a data structure containing conditions uponwhich events are triggered. In one example, the rules engine 740 maycontain every game event that triggers a community bonus round. In someembodiments, the rules engine 740 also contains contingency conditionsas well as events.

The server diagnostic module 745 provides hardware and softwarediagnostic checks of the bonus server 110 and the bonus server module700. Regulatory requirements may require that the bonus server 110employ mechanisms that verify that server components are authentic andhave not been corrupted or tampered with. As a result, a diagnostic testis used to verify and authenticate each component of the bonus server110 and the bonus server module 700.

The server administrative console module 750 controls the function anddisplay of the administrative console to the player or technician of thebonus server 110. The server module 705 may trigger an administrativemode within the bonus server 110 to display a server administrativeconsole.

The server administrative console comprises options for configuring thebonus server 110 and/or the bonus server module 700. Further, the serveradministrative console comprises options for server setup, security,game machines 200 settings, tilts, games, network setup, diagnostictests, and marketing.

The server device drivers 755 are used to control and configure thecomponents of the bonus server 110. There may be a separate serverdevice driver 755 for each component of the bonus server 110. Thecomponents of the bonus server 110 may comprise a smart card reader,enclosure sensors, video display, network interface card, local storagesystem, I/O interface, and a memory system.

The bonus server module 700 and/or the game machine module 600 (FIG. 6)may have a marketing engine and a security module. In one example, themarketing engine manages the transmission and coordination of electronicmarketing messages. Electronic marketing material, includingadvertisements and banners, may displayed by the game machine 200.

The security manager may control access to the game machine 200 and/orthe bonus server 110. In one example, the security manager controlsaccess to the client administration console 670 (FIG. 6) or the serveradministration console 750. In another example, the security manager maydefine access rights associated with different passwords. In otherembodiments, the security manager may limit physical access to theinside of the game machine 200 or the bonus server 110. In one example,the security manager requires the technician to enter a smart card andinput a password before allowing the technician to perform certain taskson the game machine 200 or the bonus server 110.

The market for slot machines and game machines is dramaticallyincreasing. As a consequence, casinos may lose players to an increasingnumber of competitors. In response, casinos are increasingly concernedwith fostering player loyalty and improving profitability.

By allowing game machines 200 to play bonus rounds within a community,new games may be offered to players. The players within the communitymay directly compete with each other, work together, or experience newforms of entertainment that were previously unavailable. The casino mayutilize community bonus round gaming to encourage groups, friends,associations, and clubs to game together or create excitement in acasino to entice other people to participate in community bonus roundgaming. Community bonus round gaming may also be used by the casino tocustomize the gaming experience for different players by tracking theirpreferences, identities, associations, scores, and attained levels. In amarketplace where players are increasingly distracted by the number ofslot machines, community bonus round gaming may be a new paradigm thatrefocuses player attention and increases the level of player service thecasino can provide.

Game Machine Software and Communications—FIGS. 8-13

A software product for operating a game with a community bonus roundincludes software and a storage medium. The software is operational whenexecuted by a processor to direct the processor to receive a game playevent from an interface of a game machine and transmit the game playevent to a game system. The software is also operational when executedby the processor to direct the processor to process the game play eventto determine a state of the game with the community bonus round andtransmit the state to the game system for synchronization. The storagemedium stores the software.

The software product advantageously provides game play events to anothergame system such as a bonus server or another game machine to providecommunications in order to execute a community bonus round. Thecommunity bonus round requires communications between the game machineand another game system to generate the community excitement andinteraction to encourage greater player participation. The softwareproduct also provides synchronization between the game machine and thegame system to ensure proper execution of the community bonus round.

The software may be divided into multiple software or even hardwaremodules to perform specific functions. In this example, a game client isloaded onto a game machine and handles the game play with communicationswith a bonus server. A communications manager handles the communicationswithin and between game machines. A state manager manages the localstates of the game machine and synchronization with other game machinesand the bonus server. There are numerous variations in how software maybe split up into different modules. However, one example is describedbelow for the sake of clarity.

FIG. 8 depicts a block diagram of a system 800 for community bonus roundgaming in one embodiment of the invention. FIG. 8 depicts the data flowbetween functional elements in the system 800 for community bonus roundgaming. The functional elements in the system 800 can be hardware and/orsoftware modules. The system 800 includes a game machine 810, platformlibraries 820, a machine manager 830, a state manager 840, a client tiltengine 850, and a game server 860. The platform libraries 820 include agame client 822. The platform libraries 820 include libraries requiredfor processing a community bonus round. Some examples of libraries arecommunication libraries for exchanging network messages and tiltlibraries for generating tilt conditions when errors occur.

The game machine 810 transmits game play events to the game client 822.The game client 822 may process inputs from the game machine 810,communicate game play events to a game server 860, control outputs tothe game machine 810's video displays, and maintain game state. A gameplay event is any event, condition, or transaction from a game. Someexamples of game play events are button events, touch screen events,bill acceptor events, ticket input events, players card events, andenclosure events. The game client 822 transmits game command events tothe game machine 810. Some examples of game command events are screenupdates and ticket outputs. The game client 822 may handle asynchronousgame machine 810 inputs using event handlers and callback functions.

The machine manager 830 handles the management functions of the gamemachine. The machine manager 830 may control games outside of normalgame play such as game play (start, stop, and suspend), signal the gameclient 822 of a pending community bonus round, and send advertisementsor community attract mode events. The machine manager 830 transmitsmachine commands to the game client 822. Some examples of machinecommands are game changes, tilts, clear tilts, community play events,and advertisement events. The game client 822 exchanges game stateinformation with the state manager 840. Some examples of game stateinformation are meters, game transactions, and game states.

The game client 822 also transmits game play information to the gameserver 860. The game server 860 is located within the bonus server asdisclosed in FIG. 10 below. Some examples of game play information aregame play events and bonus play events. The game server 860 transmitsbonus game information to the game client 822. Some examples of bonusgame information are called game graphics, game results, and bonusresults.

The game client 822 may transition to an attract mode to entice usersinto playing the game. The game client 822 may automatically spin wheelsor display examples of community bonus rounds.

FIG. 9 depicts a flow chart for the game client 822 in one embodiment ofthe invention. FIG. 9 begins in step 900. In step 902, the clientsoftware including the game client 822, the graphics, and video aredownloaded onto the game machine 810. In step 904, the game client 822initializes itself to prepare for game play. This initialization processmay include initializing memory, opening communications channels,registering for game play events, and loading graphics.

In step 906, the game client 822 receives and processes game play eventsfrom the game machine 810. In step 908, the game client 822 then logsand transfers the game play events to the bonus server for furtherprocessing. In step 910, the game client 822 may receive and displayresults and/or replies from the bonus server.

In step 912, the game client 822 determines whether to activate thecommunity bonus round. The game client 822 may receive an invitation tojoin a community bonus round game from the bonus server or another gamemachine. The game client 822 may also determine to activate thecommunity bonus round based on the game play of the game machine 810.For example, if the game machine 810 hits 3 cherries or bonus bars, thegame machine 822 may want to trigger a community bonus round thatincludes other game machines. In step 914, the game client 822 alsodetermines whether the state of the game on the game machine 810 allowsfor an interruption for the community bonus round.

If the community bonus round is not activated or the state of the gamedoes not allow for an interruption of the community bonus round, theprocess ends in step 920. If the community bonus round is activated andthe state of the game does allow for an interruption, the game client822 displays community bonus round screens in step 916. The game client822 also performs community bonus round functions in step 918. The gameclient 822 may transfer user inputs from the game machine 810 to thebonus server that executes the community bonus round. The game client822 may also execute some or all of the community bonus round logic.FIG. 9 ends in step 920.

FIG. 10 depicts a block diagram of a system 1000 for community bonusround gaming in one embodiment of the invention. FIG. 10 depicts thedata flow between functional elements in the system 1000. FIG. 10focuses on the architecture of state managers in the system 1000. Eachof the state managers in the system 1000 manages the state in theirrespective machine or server and then synchronizes with the bonus serveror other game machines. A state is any condition, status, or situationof a game. A game typically transitions through different states as thegame executes. The transitions may be based on user interactions,communications from other machines, and status of hardware and/orsoftware. Some examples of states are game states, game machine states,bonus states, diagnostic states, cluster operating states, serveroperating states, network states, switch states, and tilt states.

The system 1000 includes a primary bonus server 1010, a secondary bonusserver 1030, and a game machine 1050. The primary bonus server 1010includes a server tilt engine 1011, a system administrator 1012, acommunications manager 1013, a game server 1014, a state manager 1015, asynchronization agent 1016, and a server diagnostics 1017. The secondarybonus server 1030 includes a synchronization agent 1031 and a statemanager 1032. The game machine 1050 includes a game client 1051, aclient tilt engine 1052, a slot duration diagnostic 1053, a players club1054, a graphics manager 1055, a slot station manager 1056, acommunications manager 1057, and a state manager 1058.

The server tilt engine 1011 transmits tilt conditions to the statemanager 1015. The state manager 1015 transmits meters, system state, andcluster configurations to the system administrator 1012. The systemadministrator 1012 transmits the cluster configuration to the statemanager 1015. The communications manager 1013 transmits the networkstate to the state manager 1015. The game server 1014 transmits gametransactions to the state manager 1015. The state manager 1015 exchangesstation configuration, station states, game configurations, and playerinformation with the state manager 1058. The state manager 1015transmits cluster configurations, system states, and game transactionsfrom the game machine 1050 to the state manager 1032.

The state manager 1032 transmits secondary server state andcommunication status inquiries to the state manager 1015. Thesynchronization agent 1016 transmits operating states to the statemanager 1015. The server diagnostics 1017 transmits the diagnosticresults to the state manager 1015.

The state manager 1032 transmits secondary server state and commandstatus inquires to the state manager 1015. The state manager 1032 alsoexchanges station configuration, station state, game configurations, andplayer information with the state manager 1058. The synchronizationagent 1016 exchanges heartbeats with the synchronization agent 1031.

The game client 1051 transmits game play events to the game server 1014.The game server 1014 transmits next game states to the game client 1051.The game client 1051 transmits meters, game states, and gametransactions to the state manager 1058. The state manager 1058 transmitsgame state and meters to the game client 1051. The client tilt engine1052 transmits tilt conditions to the state manager 1058. The slotstation diagnostic 1053 transmits diagnostic results to the statemanager 1058. The players club 1054 transmits player information to thestate manager 1058. The graphics manager 1055 transmits game graphics tothe state manager 1058. The slot station manager 1056 transmits stationconfigurations and game configurations to the state manager 1058. Thecommunications manager 1057 transmits network states to the statemanager 1058.

FIG. 11 depicts a flow chart for state managers in one embodiment of theinvention. FIG. 11 begins in step 1100. In step 1102, the state manager1058 receives updates from the local processes running on the gamemachine 1050. Some examples of the local processes are game client 1051,client tile engine 1052, slot station diagnostics 1053, players club1054, graphics manager 1055, slot station manager 1056, andcommunications manager 1057. The local processes can transmit data asdepicted in FIG. 10. The state manager 1058 maintains the stateinformation for the game machine 1050 by receiving updates from thelocal processes over communications channels. In one example, the gameclient 1051 has a state change due to a game play event. The game client1051 then notifies the state manager 1058 of the state change. The statemanager 1058 may store the state information in memory.

In step 1104, the state manager 1058 synchronizes with the state manager1015 of the primary bonus server 1010. The state manager 1058 cansynchronize by exchanging station configuration, station state, gameconfigurations, and player information. The state manager 1058 may alsosynchronize with the state manager 1032 of the secondary bonus server1030.

In step 1106, the state manager 1015 synchronizes with the state manager1032. The state manager 1015 may synchronize by exchanging clusterconfigurations, system state, game transactions (from the game machine1050), secondary server states, and command status inquiries. FIG. 11ends in step 1108.

The communications manager 1013 and the communications manager 1057handle the communications for the bonus server 1010 and the game machine1050. The communications may be between machines or within processes ofthe machine. The communications managers 1013 and 1057 provide amessaging layer that enables application software to send and receivemessages regardless of the technology used to transport the message. Thecommunications managers 1013 and 1057 handle message validation,forwarding, and logging. The communications managers 1013 and 1057 canhandle routing messages between hardware and/or software components forinter- and intra-machine communications, logging message traffic,handling message based on priority, implementing communicationprotocols, and handling message detours in the event of communicationsfailures.

FIG. 12 depicts an illustration of communications layers and acommunications protocol in an embodiment of the invention. An OpenSystems Interconnection (OSI) model 1210 includes an application layer1211, a presentation layer 1212, a session layer 1213, a transport layer1214, a network layer 1215, a data link layer 1216, and a physical layer1217. A Transmission Control Protocol (TCP) model 1220 includes anapplication layer 1221, a transport layer 1222, a security layer 1223,an Internet network layer 1224, and a network access layer 1225.

The header and trailer data 1231-1235 and 1237-1238 is appended to theapplication data 1236 based on layers in the OSI model 1210 and the TCPmodel 1220. The frame header 1231 is appended at the physical layer 1217and the network access layer 1225. The IP header 1232 is appended at thenetwork layer 1215 and the internet network layer 1224. The ESP header1233, the ESP trailer 1237, and the ESP authentication 1238 are appendedat the network layer 1215 and the security layer 1223. The TCP header1234 is appended at the transport layer 1214 and the transport layer1222. The network bonus server (NBS) header 1235 is then appended to theapplication data 1236 above the transport layer 1214 and the transportlayer 1222.

FIG. 13 depicts an illustration of a communication protocol header 1300in one embodiment of the invention. In this example, the communicationprotocol header is a fixed length 24 byte header. The protocol version1311 is the version of the communication protocol. The data length 1312is the length of the packet including the communication protocol header1300. The priority 1313 is the message priority as defined by anapplication. The options field 1314 is a 4 bit options field. The lowerorder bit is used to indicate the type of message validation (e.g.0—checksum, 1 CRC). The communication sequence 1321 is the communicationlevel sequence number. The sender ID 1331 and the receiver ID 1332 areunique process identifiers for each application. The sender ID 1331 andthe receiver ID 1332 are used to route messages. The timestamp 1341 isthe time of message transmission in HH:MM:SS format. The messagesequence 1351 is the application level sequence number managed by thesending applications. The message length 1361 is the length of theapplication message. The message validation 1362 is the checksum or CRCvalidation field. The message data 1371 is the application data.

The above-described functions can be comprised of instructions that arestored on a storage medium. The instructions can be retrieved andexecuted by a processor. Some examples of instructions are software,program code, and firmware. Some examples of storage medium are memorydevices, tape, disks, integrated circuits, and servers. The instructionsare operational when executed by the processor to direct the processorto operate in accord with the invention. Those skilled in the art arefamiliar with instructions, processor(s), and storage medium.

In the foregoing specification, the invention is described withreference to specific embodiments thereof, but those skilled in the artwill recognize that the invention is not limited thereto. Variousfeatures and aspects of the above-described invention may be usedindividually or jointly. Further, the invention can be utilized in anynumber of environments and applications beyond those described hereinwithout departing from the broader spirit and scope of thespecification. Accordingly, the specification and drawings are to beregarded as illustrative rather than restrictive.

1. A software product for operating a game with a community bonus round,the software product comprising: software operational when executed by aprocessor to direct the processor to receive a game play event from aninterface of a game machine, transmit the game play event to a gamesystem, process the game play event to determine a state of the gamewith the community bonus round, and transmit the state to the gamesystem for synchronization; and a storage medium configured to store thesoftware.
 2. The software product of claim 1 wherein the game play eventindicates a user interaction with the game machine.
 3. The softwareproduct of claim 1 wherein the game machine comprises another gamemachine.
 4. The software product of claim 1 wherein the game machinecomprises a server.
 5. The software product of claim 1 wherein the stateindicates a condition of hardware in the game machine.
 6. The softwareproduct of claim 1 wherein the state indicates a transaction in thegame.
 7. The software product of claim 1 wherein the software comprisesgame client software operational when executed by the processor todirect the processor to receive the game play event from the interfaceof the game machine and transmit the game play event to a game system.8. The software product of claim 1 wherein the software comprises statemanger software operational when executed by the processor to direct theprocessor to process the game play event to determine a state of thegame with the community bonus round and transmit the state to the gamesystem for synchronization
 9. The software product of claim 1 whereinthe software comprises state manager software operational when executedby the processor to direct the processor to process communicationsbetween the game machine and the game system.
 10. The software productof claim 1 wherein the software is operational when executed by theprocessor to direct the processor to receive a message indicating anoffer to join the community bonus round.
 11. A system for operating agame with a community bonus round, the system comprising: a userinterface configured to generate a game play event based on user input;and a processor configured to receive the game play event from the userinterface, transmit the game play event to a game system, process thegame play event to determine a state of the game with the communitybonus round, and transmit the state to the game system forsynchronization.
 12. The system of claim 11 wherein the game play eventindicates a user interaction with the game machine.
 13. The system ofclaim 11 wherein the game machine comprises another game machine. 14.The system of claim 11 wherein the game machine comprises a server. 15.The system of claim 11 wherein the state indicates a condition ofhardware in the game machine.
 16. The system of claim 11 wherein thestate indicates a transaction in the game.
 17. The system of claim 11wherein the processor is configured to receive a message indicating anoffer to join the community bonus round.
 18. A method for operating agame with a community bonus round, the method comprising: in a userinterface, generating a game play event based on user input; receivingthe game play event from the user interface; transmitting the game playevent to a game system; processing the game play event to determine astate of the game with the community bonus round; and transmitting thestate to the game system for synchronization.
 19. The method of claim 18wherein the game play event indicates a user interaction with the gamemachine.
 20. The method of claim 18 wherein the game machine comprisesanother game machine.
 21. The method of claim 18 wherein the gamemachine comprises a server.
 22. The method of claim 18 wherein the stateindicates a condition of hardware in the game machine.
 23. The method ofclaim 18 wherein the state indicates a transaction in the game.
 24. Themethod of claim 18 further comprising receiving a message indicating anoffer to join the community bonus round.